package com.sky.loveshop.entity.collectMoney;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author xcy
 * @version V1.0
 * @description 收钱吧预下单响应
 * @date 2024/9/24 23:17
 */
@NoArgsConstructor
@Data
public class CmPreCreateResponse {

    @JsonProperty("result_code")
    private String resultCode;
    @JsonProperty("biz_response")
    private BizResponseDTO bizResponse;

    @NoArgsConstructor
    @Data
    public static class BizResponseDTO {
        /**
         * 通讯响应码
         * 200：通讯成功；400：客户端错误；500:服务端错误
         */
        @JsonProperty("result_code")
        private String resultCode;

        /**
         * 通讯错误码
         * 通讯 失败 的时候才返回
         */
        @JsonProperty("error_code")
        private String errorCode;

        /**
         * 通讯错误信息描述
         * 通讯 失败 的时候才返回
         */
        @JsonProperty("error_message")
        private String errorMessage;

        /**
         * 业务响应数据
         * 通讯 成功 的时候才返回
         */
        @JsonProperty("biz_response")
        private String bizResponse;

        /**
         * 详细信息
         */
        @JsonProperty("data")
        private DataDTO data;

        @NoArgsConstructor
        @Data
        public static class DataDTO {
            /**
             * 收钱吧唯一订单号 Y
             * 收钱吧系统内部唯一订单号
             */
            @JsonProperty("sn")
            private String sn;

            /**
             * 商户订单号 Y
             * 商户系统订单号
             */
            @JsonProperty("client_sn")
            private String clientSn;

            /**
             * 支付服务商订单号 N
             * 支付通道交易凭证号
             */
            @JsonProperty("trade_no")
            private String tradeNo;

            /**
             * 流水状态 Y
             * 本次操作产生的流水的状态
             */
            @JsonProperty("status")
            private String status;

            /**
             * 订单状态 Y
             * 当前订单状态
             */
            @JsonProperty("order_status")
            private String orderStatus;

            /**
             * 支付方式 Y
             * 一级支付方式，取值见附录《支付方式列表》
             */
            @JsonProperty("payway")
            private String payWay;

            /**
             * 二级支付方式 Y
             * 二级支付方式，取值见附录《二级支付方式列表》
             */
            @JsonProperty("sub_payway")
            private String subPayWay;

            /**
             * 二维码内容 N
             * 预下单成功后生成的二维码
             */
            @JsonProperty("qr_code")
            private String qrCode;

            /**
             * 交易总额 Y
             * 本次交易总金额
             */
            @JsonProperty("total_amount")
            private String totalAmount;

            /**
             * 实收金额 Y
             * 如果没有退款，这个字段等于total_amount。否则等于total_amount减去退款金额
             */
            @JsonProperty("net_amount")
            private String netAmount;

            /**
             * 交易概述 Y
             * 本次交易概述
             */
            @JsonProperty("subject ")
            private String subject;

            /**
             * 操作员 Y
             * 门店操作员
             */
            @JsonProperty("operator ")
            private String operator;

            /**
             * 反射参数 N
             * 透传参数
             */
            @JsonProperty("reflect ")
            private String reflect;

            /**
             * 支付通道返回的调用WAP支付需要传递的信息 N
             * WAP支付、小程序支付一定会返回；
             */
            @JsonProperty("wap_pay_request")
            private String wapPayRequest;
        }
    }
}
